<!-- HTML header for doxygen 1.8.5-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>smlib/filesystem.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0" width="100%">
    <tbody>
        <tr>
            <td id="projectlogo" style="text-align:left; padding-left: 0.5em;">
                <img alt="Logo" width="100" height="50" src="fat32lib.png" />
            </td>
        </tr>
        <tr style="background-image:url('tab_b.png'); height:30px">
            <td>
                <table cellspacing="0" cellpadding="0">
                    <tr>
                        <td style="padding-left: 0.5em;">
                            <div id="projectbrief">File System Stack for Embedded Devices</div>
                        </td>
                        <td style="vertical-align:middle">
                            <div>&nbsp;        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
</div>
                        </td>
                    </tr>
                </table>
            </td>
        </tr>
    </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('filesystem_8h.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a>  </div>
  <div class="headertitle">
<div class="title">filesystem.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>This header file defines the interface used by this module to interface to a file system driver. It also defines most of the result codes returned by the functions in this module.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_f_i_l_e_s_y_s_t_e_m.html">FILESYSTEM</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores all the function pointers needed by this library to interface to a file system driver.  <a href="struct_f_i_l_e_s_y_s_t_e_m.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a5e136bfc3987fe4edda5782ce27808fe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e136bfc3987fe4edda5782ce27808fe"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_SUCCESS</b></td></tr>
<tr class="separator:a5e136bfc3987fe4edda5782ce27808fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8796b210e5290411016419e2155fc37e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8796b210e5290411016419e2155fc37e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_UNKNOWN_ERROR</b></td></tr>
<tr class="separator:a8796b210e5290411016419e2155fc37e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3b1925e3bea59952222b63f64f086b1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac3b1925e3bea59952222b63f64f086b1"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_CANNOT_READ_MEDIA</b></td></tr>
<tr class="separator:ac3b1925e3bea59952222b63f64f086b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ba7259c1abd05f1d553ab5d74a453d1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9ba7259c1abd05f1d553ab5d74a453d1"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_CANNOT_WRITE_MEDIA</b></td></tr>
<tr class="separator:a9ba7259c1abd05f1d553ab5d74a453d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79c73e22c76085f4398ccc7140cc981e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a79c73e22c76085f4398ccc7140cc981e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_NOT_A_DIRECTORY</b></td></tr>
<tr class="separator:a79c73e22c76085f4398ccc7140cc981e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a44c2d78f2568d956c456f2120716f2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7a44c2d78f2568d956c456f2120716f2"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_INVALID_FILENAME</b></td></tr>
<tr class="separator:a7a44c2d78f2568d956c456f2120716f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d7edcc8004201e37f2502cf4a487520"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5d7edcc8004201e37f2502cf4a487520"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILENAME_ALREADY_EXISTS</b></td></tr>
<tr class="separator:a5d7edcc8004201e37f2502cf4a487520"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab88cf39b74a6f1639472e8f987f645a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aab88cf39b74a6f1639472e8f987f645a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_INVALID_PATH</b></td></tr>
<tr class="separator:aab88cf39b74a6f1639472e8f987f645a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4751dee94b6561eed84e6605831764e0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4751dee94b6561eed84e6605831764e0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_CORRUPTED_FILE</b></td></tr>
<tr class="separator:a4751dee94b6561eed84e6605831764e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98d23a76518c7adffaf414ae38de3a78"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a98d23a76518c7adffaf414ae38de3a78"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_ILLEGAL_FILENAME</b></td></tr>
<tr class="separator:a98d23a76518c7adffaf414ae38de3a78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f12f142af8199346df22b0ca1e20f1a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5f12f142af8199346df22b0ca1e20f1a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILENAME_TOO_LONG</b></td></tr>
<tr class="separator:a5f12f142af8199346df22b0ca1e20f1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada52b739c685d7bfca7096d417fbd0b8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada52b739c685d7bfca7096d417fbd0b8"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_NOT_A_FILE</b></td></tr>
<tr class="separator:ada52b739c685d7bfca7096d417fbd0b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8249444386246e87a4591c52d18e1922"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8249444386246e87a4591c52d18e1922"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILE_NOT_FOUND</b></td></tr>
<tr class="separator:a8249444386246e87a4591c52d18e1922"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fe52cd967bffeebd6c29b42b5b670d0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5fe52cd967bffeebd6c29b42b5b670d0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_DIRECTORY_DOES_NOT_EXIST</b></td></tr>
<tr class="separator:a5fe52cd967bffeebd6c29b42b5b670d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2444a98d357dc6b065f0f12e976a7e95"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2444a98d357dc6b065f0f12e976a7e95"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_INSUFFICIENT_DISK_SPACE</b></td></tr>
<tr class="separator:a2444a98d357dc6b065f0f12e976a7e95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac327fdc7a336b93b914340984a33e541"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac327fdc7a336b93b914340984a33e541"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FEATURE_NOT_SUPPORTED</b></td></tr>
<tr class="separator:ac327fdc7a336b93b914340984a33e541"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a378e4c92b7d3dd0f0f8683b0007eb812"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a378e4c92b7d3dd0f0f8683b0007eb812"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_OP_IN_PROGRESS</b></td></tr>
<tr class="separator:a378e4c92b7d3dd0f0f8683b0007eb812"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a962a9fde2babb6e7d0fa7e1e745d5dd2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a962a9fde2babb6e7d0fa7e1e745d5dd2"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_SECTOR_SIZE_NOT_SUPPORTED</b></td></tr>
<tr class="separator:a962a9fde2babb6e7d0fa7e1e745d5dd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81bbf48aff1259b8ec8f8ae33034b962"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a81bbf48aff1259b8ec8f8ae33034b962"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_LFN_GENERATED</b></td></tr>
<tr class="separator:a81bbf48aff1259b8ec8f8ae33034b962"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebd2c02d5c66df18e2b94d57346f0e2b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aebd2c02d5c66df18e2b94d57346f0e2b"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_SHORT_LFN_GENERATED</b></td></tr>
<tr class="separator:aebd2c02d5c66df18e2b94d57346f0e2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39b97b316e712288bfca29547aee3820"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a39b97b316e712288bfca29547aee3820"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_SEEK_FAILED</b></td></tr>
<tr class="separator:a39b97b316e712288bfca29547aee3820"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa246210fe5db905ba3c1e8b4110eeb34"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa246210fe5db905ba3c1e8b4110eeb34"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILE_NOT_OPENED_FOR_WRITE_ACCESS</b></td></tr>
<tr class="separator:aa246210fe5db905ba3c1e8b4110eeb34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3615415b7ca6852d77e172437f0b8c1d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3615415b7ca6852d77e172437f0b8c1d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_INVALID_HANDLE</b></td></tr>
<tr class="separator:a3615415b7ca6852d77e172437f0b8c1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8b75da8bc8af87b635c0565bc861377"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8b75da8bc8af87b635c0565bc861377"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_INVALID_CLUSTER</b></td></tr>
<tr class="separator:af8b75da8bc8af87b635c0565bc861377"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a195f3ce9173608dfbe6d1be64c529a6b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a195f3ce9173608dfbe6d1be64c529a6b"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_INVALID_FAT_VOLUME</b></td></tr>
<tr class="separator:a195f3ce9173608dfbe6d1be64c529a6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af75fb9e578ab6dd286f42cd3068ababc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af75fb9e578ab6dd286f42cd3068ababc"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_INVALID_VOLUME_LABEL</b></td></tr>
<tr class="separator:af75fb9e578ab6dd286f42cd3068ababc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c888d3c6c1e0e8411dfc5e10e50e738"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0c888d3c6c1e0e8411dfc5e10e50e738"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_INVALID_FORMAT_PARAMETERS</b></td></tr>
<tr class="separator:a0c888d3c6c1e0e8411dfc5e10e50e738"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae337719d5ac75772d08807e5248ed07f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae337719d5ac75772d08807e5248ed07f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_ROOT_DIRECTORY_LIMIT_EXCEEDED</b></td></tr>
<tr class="separator:ae337719d5ac75772d08807e5248ed07f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e39f1318585281c6a55a7c5d2c774a7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e39f1318585281c6a55a7c5d2c774a7"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_DIRECTORY_LIMIT_EXCEEDED</b></td></tr>
<tr class="separator:a5e39f1318585281c6a55a7c5d2c774a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7f97bc106e3dd347cb3dfa8a53f3a1e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad7f97bc106e3dd347cb3dfa8a53f3a1e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_INVALID_PARAMETERS</b></td></tr>
<tr class="separator:ad7f97bc106e3dd347cb3dfa8a53f3a1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cfb6a40e2b6d7eb95693d0281b130fa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8cfb6a40e2b6d7eb95693d0281b130fa"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILE_HANDLE_IN_USE</b></td></tr>
<tr class="separator:a8cfb6a40e2b6d7eb95693d0281b130fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab34885284fe5cb65f8792c9bfa5f4bb6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab34885284fe5cb65f8792c9bfa5f4bb6"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILE_BUFFER_NOT_SET</b></td></tr>
<tr class="separator:ab34885284fe5cb65f8792c9bfa5f4bb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3066cfc2124b0f80df4685412f072349"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3066cfc2124b0f80df4685412f072349"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_AWAITING_DATA</b></td></tr>
<tr class="separator:a3066cfc2124b0f80df4685412f072349"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ad1be21c99420c57b7bd0d78a720d6f35"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad1be21c99420c57b7bd0d78a720d6f35"></a>
typedef void *&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILE</b></td></tr>
<tr class="separator:ad1be21c99420c57b7bd0d78a720d6f35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44699ae0b1194bfaf79096158688c0af"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a44699ae0b1194bfaf79096158688c0af"></a>
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_ASYNC_CALLBACK</b> )(void *context, uint16_t *result)</td></tr>
<tr class="separator:a44699ae0b1194bfaf79096158688c0af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2eec6fe2ddd8188a85c6da68b90d7a7d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2eec6fe2ddd8188a85c6da68b90d7a7d"></a>
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_STREAM_CALLBACK</b> )(void *context, uint16_t *result, unsigned char **buffer, uint16_t *response)</td></tr>
<tr class="separator:a2eec6fe2ddd8188a85c6da68b90d7a7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea05198dad48a80b93b5be6611d4e467"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aea05198dad48a80b93b5be6611d4e467"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_MOUNT_VOLUME</b> )(void *volume, void *storage_interface)</td></tr>
<tr class="separator:aea05198dad48a80b93b5be6611d4e467"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c94397bcfbdfcd0f432976e4e70cf82"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4c94397bcfbdfcd0f432976e4e70cf82"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_DISMOUNT_VOLUME</b> )(void *volume)</td></tr>
<tr class="separator:a4c94397bcfbdfcd0f432976e4e70cf82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3c563d189647af40254fde9060fe330"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af3c563d189647af40254fde9060fe330"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FIND_FIRST_ENTRY</b> )(void *volume, char *path, unsigned char attributes, void **dir_entry, void *query)</td></tr>
<tr class="separator:af3c563d189647af40254fde9060fe330"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e84a93025da08f04dd7092e1fef72ea"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7e84a93025da08f04dd7092e1fef72ea"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FIND_NEXT_ENTRY</b> )(void *volume, void **dir_entry, void *query)</td></tr>
<tr class="separator:a7e84a93025da08f04dd7092e1fef72ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43a786f1d363b746b76a069743fd52b8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a43a786f1d363b746b76a069743fd52b8"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_CREATE_DIRECTORY</b> )(void *volume, char *pathname)</td></tr>
<tr class="separator:a43a786f1d363b746b76a069743fd52b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76852840c90afaf2aad32bdb728105a4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a76852840c90afaf2aad32bdb728105a4"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILE_DELETE</b> )(void *volume, char *filename)</td></tr>
<tr class="separator:a76852840c90afaf2aad32bdb728105a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6058f888b4ce0126ee29fa8a39922b4e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6058f888b4ce0126ee29fa8a39922b4e"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILE_RENAME</b> )(void *volume, char *original_filename, char *new_filename)</td></tr>
<tr class="separator:a6058f888b4ce0126ee29fa8a39922b4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82b9287eb8ef2037ab5b668e3265a80f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a82b9287eb8ef2037ab5b668e3265a80f"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILE_OPEN</b> )(void *volume, char *filename, unsigned char access_flags, void *file)</td></tr>
<tr class="separator:a82b9287eb8ef2037ab5b668e3265a80f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc0f440d94344cd9bc36d1873ffde756"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afc0f440d94344cd9bc36d1873ffde756"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILE_ALLOC</b> )(void *file, uint32_t bytes)</td></tr>
<tr class="separator:afc0f440d94344cd9bc36d1873ffde756"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecbe2d2ceb9062ee733a98561142717b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aecbe2d2ceb9062ee733a98561142717b"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILE_SEEK</b> )(void *file, uint32_t offset, char mode)</td></tr>
<tr class="separator:aecbe2d2ceb9062ee733a98561142717b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4b02ba4f9f48942ff445f6199f50b87"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad4b02ba4f9f48942ff445f6199f50b87"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILE_WRITE</b> )(void *file, unsigned char *buffer, uint32_t length)</td></tr>
<tr class="separator:ad4b02ba4f9f48942ff445f6199f50b87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac60c43f750a4e892fba608921935a8b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac60c43f750a4e892fba608921935a8b"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILE_WRITE_ASYNC</b> )(void *file, unsigned char *buffer, uint32_t length, uint16_t *result, FILESYSTEM_ASYNC_CALLBACK callback, void *callback_context)</td></tr>
<tr class="separator:aac60c43f750a4e892fba608921935a8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0ad9cad479faf8af40c8e1250c4db93"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af0ad9cad479faf8af40c8e1250c4db93"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILE_WRITE_STREAM</b> )(void *file, unsigned char *buffer, uint32_t length, uint16_t *result, FILESYSTEM_STREAM_CALLBACK callback, void *callback_context)</td></tr>
<tr class="separator:af0ad9cad479faf8af40c8e1250c4db93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72107d14b3141229c2efda3e62461aac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a72107d14b3141229c2efda3e62461aac"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILE_READ</b> )(void *file, unsigned char *buffer, uint32_t length, uint32_t *bytes_read)</td></tr>
<tr class="separator:a72107d14b3141229c2efda3e62461aac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacfe8d01e9abc125045fce23b0683500"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aacfe8d01e9abc125045fce23b0683500"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILE_READ_ASYNC</b> )(void *file, unsigned char *buffer, uint32_t length, uint32_t *bytes_read, uint16_t *result, FILESYSTEM_ASYNC_CALLBACK callback, void *callback_context)</td></tr>
<tr class="separator:aacfe8d01e9abc125045fce23b0683500"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add0ba69ad9c319deb42e112069edaeb7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add0ba69ad9c319deb42e112069edaeb7"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILE_FLUSH</b> )(void *file)</td></tr>
<tr class="separator:add0ba69ad9c319deb42e112069edaeb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d9ceefe53336b708399bc92c1c61970"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1d9ceefe53336b708399bc92c1c61970"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILE_CLOSE</b> )(void *file)</td></tr>
<tr class="separator:a1d9ceefe53336b708399bc92c1c61970"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1d81092ad325aa80f990f0eae451a1d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae1d81092ad325aa80f990f0eae451a1d"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_GET_SECTOR_SIZE</b> )(void *volume)</td></tr>
<tr class="separator:ae1d81092ad325aa80f990f0eae451a1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a7e8df741c7c30642e62bda17bb3724"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5a7e8df741c7c30642e62bda17bb3724"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILE_SET_BUFFER</b> )(void *file, unsigned char *buffer)</td></tr>
<tr class="separator:a5a7e8df741c7c30642e62bda17bb3724"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac327af1c1560e22b043ba0d321b3cf35"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac327af1c1560e22b043ba0d321b3cf35"></a>
typedef uint16_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_GET_FILE_ENTRY</b> )(void *volume, char *filename, void *file_entry)</td></tr>
<tr class="separator:ac327af1c1560e22b043ba0d321b3cf35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af67c277a2a0b9535c6de9b658c166d7b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af67c277a2a0b9535c6de9b658c166d7b"></a>
typedef uint32_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>FILESYSTEM_FILE_GET_UNIQUE_ID</b> )(void *file)</td></tr>
<tr class="separator:af67c277a2a0b9535c6de9b658c166d7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>This header file defines the interface used by this module to interface to a file system driver. It also defines most of the result codes returned by the functions in this module. </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_24b8f0e80fe3d390cad25eb9724204bd.html">smlib</a></li><li class="navelem"><a class="el" href="filesystem_8h.html">filesystem.h</a></li>
    <li class="footer">Copyright &copy; 2013 by <a href="mailto:frodriguez.developer@outlook.com">Fernando Rodriguez</a></li>
  </ul>
</div>
</body>
</html>
